package emumTest;

import java.text.DateFormat;
import java.util.Date;

/**
 * @ClassName EnumMethodTest
 * @Description
 * Java的eaum有一个非常有趣的特性, 即它允许程序员为emm实例编写方法, 从而为每个
 * emm实例赋予各自不同的行为。要实现常量相关的方法,你需要为nm定义一个或多个 abstract
 * 方法,然后为每个enum实例实现该抽象方法。参考下面的例子:
 * @Author LIBOFEI
 * @Date 2020/6/6 17:35
 * @Version 1.0
 **/
public enum EnumMethodTest {

    /***/
    DARE_TIME{
        @Override
        String getInfo(){
            return DateFormat.getDateInstance().format(new Date());
        }
    },
    /***/
    CLASSPATH{
        @Override
        String getInfo(){
            return System.getenv("CLASSPATH");
        }
    },
    VERSION{
        @Override
        String getInfo(){
            return System.getProperty("java.version");
        }
    };

    abstract String getInfo();

    public static void main(String[] args) {
        for(EnumMethodTest test : values()){
            System.out.println(test);
            System.out.println(test.getInfo());
        }
    }
}
